﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;

namespace EGuayas.Web.Notificacion
{
    public partial class AlertaGrid : ucWuc
    {
       
        protected void Page_Load(object sender, EventArgs e)
        {
          try
          {
            if (!X.IsAjaxRequest)
            {
               
            
            }
          }
          catch (Exception ex)
          {
              RegistrarLog(ex);
          }

        }

        [DirectMethod(IDAlias = "AlertaGrid", ShowMask = true)]
        public Boolean UpdateEstado(string _id,string _estado)
        {
            try
            {
            Alerta objAlerta = Alerta.GetEditableRoot(_id);
            if (objAlerta.Estado != _estado)
            {
                objAlerta.Estado = _estado;
                if (_estado == "R")
                {                  
                    objAlerta.FechaEjecuta = DateTime.Now;
                    objAlerta.Save();
                    X.Js.Call("FeedViewer.FeedGrid.reloadGrid", 0);
                }
                else
                {
                   
                    objAlerta.AlertaVisualizada = "N";
                    objAlerta.Save();
                }
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return (true);
        }

        [DirectMethod(IDAlias = "AlertaGrid")]
        public AlertaLista BindDataAlerta(string action, Dictionary<string, object> extraParams)
        {
            AlertaLista lista = null;
            try
            {
                string queryPrm = extraParams["query"].ToString();

                switch (queryPrm)
                {
                    case "revizados":
                        AlertaCriteriaSingleCriteria filter_1 = AlertaCriteriaSingleCriteria.NewAlertaSingleCriteria();
                        filter_1.FechaConfigura = DateTime.Now;
                        filter_1.RemiteId = GetSessionUsuario.PersonaId;
                        filter_1.Visualiza = "S";
                        filter_1.Estado = "E,R";
                        filter_1.CodigoRol = GetSessionUsuario.UsuarioRolCodigo;
                        lista = AlertaLista.GetAlertaLista(filter_1);
                        break;
                    case "borrados":
                        AlertaDeleteCriteria filter_2 = AlertaDeleteCriteria.NewAlertaDeleteCriteria();
                        filter_2.FechaConfigura = DateTime.Now;
                        filter_2.Visualiza = "N";
                        filter_2.Estado = "B";
                        filter_2.RemiteId = GetSessionUsuario.PersonaId;
                        filter_2.CodigoRol = GetSessionUsuario.UsuarioRolCodigo;
                        lista = AlertaLista.GetAlertaLista(filter_2);
                        break;
                    case "anteriores":
                        AlertaDeleteCriteria filter_3 = AlertaDeleteCriteria.NewAlertaDeleteCriteria();
                        filter_3.FechaConfigura = DateTime.Now.AddDays(-1);
                        filter_3.Visualiza = "S";
                        filter_3.Estado = "R,E";
                        filter_3.RemiteId = GetSessionUsuario.PersonaId;
                        filter_3.CodigoRol = GetSessionUsuario.UsuarioRolCodigo;
                        lista = AlertaLista.GetAlertaLista(filter_3);
                        break;

                }
                return (lista);
            }
            catch (Exception ex)
            {
                var rutaLog = MapPath("~/Resources/log.txt");
                Util.RegistarLog(ex.ToString(), rutaLog);
                return (lista);
            }
        }
    }
}